package com.bsj.power.common.def.entity.job;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;
import java.util.List;

/**
 * @author yinhao
 * @version 1.0
 * @description 工单信息
 * @date 2024/5/10
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@TableName(value = "tab_job")
public class Job extends Model<Job> {
    /**
     * Id主键
     */
    @TableId(value = "job_id", type = IdType.AUTO)
    private Long jobId;

    /**
     * 工单号
     */
    @TableField(value = "job_num")
    private String jobNum;

    /**
     * 作业标题
     */
    @TableField(value = "title")
    private String title;

    /**
     * 作业描述
     */
    @TableField(value = "description")
    private String description;

    /**
     * 作业区域（围栏名称）
     */
    @TableField(value = "work_area")
    private String workArea;

    /**
     * 作业计划开始时间
     */
    @TableField(value = "start_time")
    private Date startTime;

    /**
     * 作业计划结束时间
     */
    @TableField(value = "end_time")
    private Date endTime;

    /**
     * 负责人id（人员id）
     */
    @TableField(value = "director_id")
    private String directorId;

    /**
     * 负责人名称
     */
    @TableField(value = "director")
    private String director;

    /**
     * 负责人电话
     */
    @TableField(value = "phone")
    private String phone;

    /**
     * 作业状态 0:未完成 1:进行中 2:已完成
     */
    @TableField(value = "status")
    private Integer status;

    /**
     * 工单系统同步过来的状态
     */
    @TableField(value = "sync_status")
    private String syncStatus;

    /**
     * 状态描述
     */
    @TableField(value = "state_description")
    private String stateDescription;

    /**
     * 作业添加时间
     */
    @TableField(value = "create_time")
    private Date createTime;

    /**
     * 作业目标开始时间
     */
    @TableField(value = "target_time")
    private Date targetTime;

    /**
     * 作业目标完成时间
     */
    @TableField(value = "complete_time")
    private Date completeTime;

    /**
     * 执行主管
     */
    @TableField(value = "executive_director")
    private String executiveDirector;

    /**
     * 承包商QC选点状态
     */
    @TableField(value = "contractor_qc")
    private Integer contractorQc;

    /**
     * 维修QC选点状态
     */
    @TableField(value = "maintain_qc")
    private Integer maintainQc;

    /**
     * 技术支持QC选点状态
     */
    @TableField(value = "technical_support_qc")
    private Integer technicalSupportQc;
    /**
     * wbs编码
     */
    @TableField(value = "pos_id")
    private String posId;
    /**
     * wbs描述
     */
    @TableField(value = "wbs_post")
    private String wbsPost;

    /**
     * 风险等级 1:低风险，2 中风险 3高风险
     */
    @TableField(value = "risk_level")
    private Integer riskLevel;

    /**
     * 机组号 1一号机组 2二号机组
     */
    @TableField(value = "unit_num")
    private Integer unitNum;

    /**
     * 功能位置（作业设备）
     */
    @TableField(value = "location")
    private String location;

    /**
     * 房间号
     */
    @TableField(value = "room_no")
    private String roomNo;

    /**
     * 步骤
     */
    @TableField(value = "`procedure`")
    private String procedure;

    /**
     * 危险
     */
    @TableField(value = "risk")
    private String risk;

    /**
     * 预防措施
     */
    @TableField(value = "precautionary_measures")
    private String precautionaryMeasures;

    /**
     * 工单小类
     */
    @TableField(value = "work_type")
    private String workType;

    /**
     * 区域类型  0其他 1敏感区域
     */
    @TableField(value = "area_type")
    private Integer areaType;

    /**
     * 区域级别
     */
    @TableField(value = "area_level")
    private String areaLevel;

    /**
     * 作业人员
     */
    @TableField(exist = false)
    private List<Integer> personnelIds;

    /**
     * 围栏id
     */
    @TableField(exist = false)
    private Integer pathId;

    /**
     * 质量计划
     */
    @TableField(exist = false)
    private List<QualityPlan> qualityPlans;

    /**
     * 作业等级
     */
    @TableField(exist = false)
    private String workGrade;

    /**
     * 负责人工号
     */
    @TableField(exist = false)
    private String empNo;

    /**
     * 作业人员工号集
     */
    @TableField(exist = false)
    private List<String> temporaryEmpNos;
}
